|
||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||
public interface GPCLRegistryEntry
Defines methods that manage the GlobalPlatform registry extension on contactless interface for an applet.
All OPEN-owned objects implementing the GPRegistryEntry interface
shall also implement and may be casted to the GPCLRegistryEntry
interface.
When an Application is deleted, then the GPCLRegistryEntry object
corresponding to this Application shall be disabled and all its methods shall
throw a javacard.framework.SystemException with reason code
SystemException.ILLEGAL_USE. The OPEN shall ensure that this
GPCLRegistryEntry object can never be re-enabled, even if an
Application with the same AID as the Application previously bound to
this GPCLRegistryEntry object is installed. An application holding
a reference to a disabled GPCLRegistryEntry object should release
it, as it has become useless and will only throw exceptions.
Note: Developers shall pay attention to the CRELApplication,
CLApplet and CRSApplication interfaces being notified upon usage of
GPCLRegistryEntry services. Therefore, it is strongly recommended
not to call the services provided by this interface when a Java Card
transaction is under progress.
GPCLSystem.getGPCLRegistryEntry(AID),
GPCLSystem.getNextGPCLRegistryEntry(GPCLRegistryEntry, short)| Field Summary | |
|---|---|
static byte |
CONTINUOUS_PROCESS_DISABLED
Constant indicating that the application supports Interleaved Processing. |
static byte |
CONTINUOUS_PROCESS_ENABLED
Constant indicating that the application requires Continuous Processing. |
static byte |
DISPLAY_REQUIREMENT_NO
Constant indicating that the application does not require the availability of display capabilities (i.e. can work when the display is off or not available). |
static byte |
DISPLAY_REQUIREMENT_YES
Constant indicating that the application requires the availability of display capabilities (i.e. cannot work when the display is off or not available). |
static byte |
IMPLICIT_SELECTION_TYPE_A
Constant indicating that the application supports contactless protocol Type A for implicit selection |
static byte |
IMPLICIT_SELECTION_TYPE_B
Constant indicating that the application supports contactless protocol Type B for implicit selection |
static byte |
IMPLICIT_SELECTION_TYPE_F
Constant indicating that the application supports contactless protocol Type F for implicit selection |
static short |
INFO_CONTINUOUS_PROCESS
The requested information is the Continuous Processing Indicator. |
static short |
INFO_COUNTER_UPDATE
The requested information is the Update Counter (READ ONLY). |
static short |
INFO_DISCRETIONARY_DATA
The requested information is discretionary data. |
static short |
INFO_DISPLAY_MESSAGE
The requested information is a diplay message (i.e. content of Display Message - Tag '5F45'). |
static short |
INFO_DISPLAY_REQUIREMENT
The requested information is the Display Required Indicator. |
static short |
INFO_FAMILY_IDENTIFIER
The requested information is an Application Family Identifier. |
static short |
INFO_GROUP_HEAD_APPLICATION
The requested information is the AID of the Group Head Application if this entry correspond to a Member Application. |
static short |
INFO_IMPLICIT_SELECTION_PROTOCOLS
The requested information is a list of protocols (Type A, Type B and/or Type F) used for implicit selection. |
static short |
INFO_IMPLICIT_SELECTION_RECOGNITION_ALGORITHM
The requested information is a Recognition Algorithm to be used for Implicit Selection (i.e. content of INSTALL system parameter Tag '83'). |
static short |
INFO_LOGO
The requested information is a logo (i.e. content of Application Image Template - Tag '6D'). |
static short |
INFO_POLICY_RESTRICTED_APPLICATIONS
The requested information is a policy restricting the joint usage of some applications. |
static short |
INFO_PROTOCOL_DATA_TYPE_A
The requested information is the PROTOCOL_DATA_TYPE_A (i.e. content of INSTALL system parameter Tag '86'). |
static short |
INFO_PROTOCOL_DATA_TYPE_B
The requested information is the PROTOCOL_DATA_TYPE_B (i.e. content of INSTALL system parameter Tag '87'). |
static short |
INFO_PROTOCOL_DATA_TYPE_F
The requested information is the PROTOCOL_DATA_TYPE_F (reserved for future usage). |
static short |
INFO_SELECTION_PRIORITY
The requested information is the Selection Priority (READ ONLY) encoded as a single unsigned byte. |
static short |
INFO_URI
The requested information is an URI (i.e. content of Uniform Ressource Identifier Tag '5F50'). |
static byte |
PRIVILEGE_CONTACTLESS_ACTIVATION
Contactless Activation privilege (18). |
static byte |
PRIVILEGE_CONTACTLESS_SELF_ACTIVATION
Self Activation privilege (19). |
static byte |
STATE_CL_ACTIVATED
Constant used to activate an applet on the contactless interface. |
static byte |
STATE_CL_DEACTIVATED
Constant used to deactivate an applet on the contactless interface. |
static byte |
STATE_CL_NON_ACTIVATABLE
Constant used to change the state of an applet to NON ACTIVATABLE over the contactless interface. |
| Method Summary | |
|---|---|
void |
addToCRELApplicationList(byte[] baAID,
short offsetAID,
short lengthAID)
Adds an AID to the CREL Application list referenced by this entry. |
void |
addToGroupAuthorizationList(byte[] baAID,
short offsetAID,
short lengthAID)
Adds an AID to the Group Authorization List. |
byte |
getCLState()
Retrieves the contactless life cycle state of the application. |
short |
getInfo(byte[] buffer,
short offset,
short info)
Retrieves the contents of the Application Information entry in the GlobalPlatform registry. |
GPCLRegistryEntry |
getNextConflictingApplication(GPCLRegistryEntry oEntry)
Retrieves the list of currently activated Contactless Applications that would conflict if the Contactless Application represented by this entry was activated. |
GPCLRegistryEntry |
getNextCRELApplication(GPCLRegistryEntry oEntry)
Retrieves the list of CREL Applications referenced by this entry. |
GPCLRegistryEntry |
getNextGroupMember(GPCLRegistryEntry oEntry)
Retrieves the list of member Applications belonging to the Application Group represented by this entry (Head Application). |
GPCLRegistryEntry |
getNextReferencingApplication(GPCLRegistryEntry oEntry)
Retrieves the list of Applications that reference this entry as one of their CREL Applications. |
boolean |
isGroupHead()
Whether this entry represents a Group Head. |
boolean |
isGroupMember()
Whether this entry represents a Group Member. |
void |
joinGroup(javacard.framework.AID oHead)
Sets up this entry as a member of the Application
Group with specified Head Application. |
void |
removeFromCRELApplicationList(byte[] baAID,
short offsetAID,
short lengthAID)
Removes an AID from the CREL Application list referenced by this entry. |
void |
removeFromGroupAuthorizationList(byte[] baAID,
short offsetAID,
short lengthAID)
Removes an AID from the Group Authorization List. |
byte |
setCLState(byte state)
Changes the contactless life cycle state of the applet associated with this entry. |
short |
setInfo(byte[] buffer,
short offset,
short length,
short info)
Updates the contents of the Information associated to this GPCLRegistryEntry. |
void |
setPartialSelectionOrder(boolean TopBottom)
Sets the permanent order of the GlobalPlatform Registry used by application selection by AID matching. |
| Methods inherited from interface org.globalplatform.GPRegistryEntry |
|---|
deregisterService, getAID, getPrivileges, getState, isAssociated, isPrivileged, registerService, setState |
| Field Detail |
|---|
static final byte PRIVILEGE_CONTACTLESS_ACTIVATION
static final byte PRIVILEGE_CONTACTLESS_SELF_ACTIVATION
static final byte STATE_CL_NON_ACTIVATABLE
static final byte STATE_CL_ACTIVATED
static final byte STATE_CL_DEACTIVATED
static final short INFO_URI
static final short INFO_DISCRETIONARY_DATA
static final short INFO_LOGO
static final short INFO_PROTOCOL_DATA_TYPE_A
static final short INFO_PROTOCOL_DATA_TYPE_B
static final short INFO_PROTOCOL_DATA_TYPE_F
static final short INFO_DISPLAY_MESSAGE
static final short INFO_FAMILY_IDENTIFIER
This information is encoded as follows:
static final short INFO_IMPLICIT_SELECTION_PROTOCOLS
This information is encoded as a sequence of bytes representing the value(s) of one or more of the following constants:
If the sequence is empty, the application can be implicity selected using any of these protocol types (see definition of TLV "Assigned Protocol for Implicit Selection").
static final byte IMPLICIT_SELECTION_TYPE_A
static final byte IMPLICIT_SELECTION_TYPE_B
static final byte IMPLICIT_SELECTION_TYPE_F
static final short INFO_CONTINUOUS_PROCESS
This information may have one of the following values:
static final byte CONTINUOUS_PROCESS_ENABLED
static final byte CONTINUOUS_PROCESS_DISABLED
static final short INFO_COUNTER_UPDATE
GPCLRegistryEntry is
updated. This counter is used by CRS/CREL applications to synchronize with
the current state of the GlobalPlatform registry.
static final short INFO_DISPLAY_REQUIREMENT
static final byte DISPLAY_REQUIREMENT_NO
static final byte DISPLAY_REQUIREMENT_YES
static final short INFO_POLICY_RESTRICTED_APPLICATIONS
This information is encoded as a sequence (possibly empty) of TLV structures, each one representing an AID (tag '4F').
static final short INFO_IMPLICIT_SELECTION_RECOGNITION_ALGORITHM
static final short INFO_SELECTION_PRIORITY
The Selection Priority is calculated based on the absolute position of the Contactless Application's entry in the GlobalPlatform Registry, and the Volatile Priority, if assigned.
static final short INFO_GROUP_HEAD_APPLICATION
this entry correspond to a Member Application.
The binary value of the AID (5 to 16 bytes) is written to the specified buffer.
isGroupMember(),
Constant Field Values| Method Detail |
|---|
byte setCLState(byte state)
this entry.
When this entry is a Group Member and is in STATE_CL_NON_ACTIVATABLE state
then this entry follows the activation state of the Head Application when
state transition of this entry is to STATE_CL_ACTIVATED or
to STATE_CL_DEACTIVATED.
Only the application associated to this entry may transition to the
STATE_CL_NON_ACTIVATABLE state.
The application associated to this entry, or
the Application with the PRIVILEGE_CONTACTLESS_ACTIVATION privilege, or
CREL Applications registered in the CREL list of the associated applet may transition
this entry to the STATE_CL_DEACTIVATED
When the state transition of this entry is to STATE_CL_ACTIVATED,
PRIVILEGE_CONTACTLESS_ACTIVATION privilege, or PRIVILEGE_CONTACTLESS_SELF_ACTIVATION privilege,CRSApplication.processCLRequest(GPRegistryEntry, GPCLRegistryEntry, short). This method shall check whether the transition is permitted before requesting the CRS Application to perform the transition.setCLState(byte)
to change the application state on the contactless interface.
The OPEN is responsible to notify all Application(s) implementing CRELApplication.notifyCLEvent(GPCLRegistryEntry, short).
If the Application associated to this entry, implements the interface CLApplet and
the Application is not at the origin of the request then
OPEN shall notify the application by calling CLApplet.notifyCLEvent(short)
It shall be supported to change the activation state of a contactless applet irrespective of the state of the contactless front end in the handset. When the contactless functionality is enabled the OPEN shall ensure that the contactless front end is provisioned so that it reflects the configuration of the contactless applets in the OPEN.
state - requested Availability state on Contactless interface.
The possible state are
javacard.framework.ISOException - with reason code
ISO7816.SW_CONDITIONS_NOT_SATISFIED if the caller does not have enough privileges, or the presence of the CRS Application is required and the CRS Application cannot be located or is not in a selectable state.ISO7816.SW_CONDITIONS_NOT_SATISFIED if the requested state is STATE_CL_ACTIVATED and the Application corresponding to this entry either GPCLSystem.checkCommunicationInterfaceAccess(org.globalplatform.GPRegistryEntry, short)), orSTATE_CL_ACTIVATED state. ISO7816.SW_WRONG_DATA if the application cannot be activated on the contactless interface because of conflicting RF parameters.ISO7816.SW_CONDITIONS_NOT_SATISFIED if the requested availability state transition is not valid.ISO7816.SW_UNKNOWN if the call to the CRSApplication.processCLRequest(GPRegistryEntry, GPCLRegistryEntry, short) method resulted in an exception being thrown.GPRegistryEntrybyte getCLState()
short getInfo(byte[] buffer,
short offset,
short info)
buffer - where requested information shall be written. For the coding of the data
see the documentation of the constants INFO_XX.offset - within buffer, where requested information shall be written.info - is any constant with name INFO_XX which is defined in this interface.
offset + length of data written in buffer)
javacard.framework.ISOException - with reason code
ISO7816.SW_CONDITIONS_NOT_SATISFIED if the caller
GPRegistryEntry.PRIVILEGE_GLOBAL_REGISTRY privilege, andISO7816.SW_WRONG_DATA if the value of info is unknown.ISO7816.SW_RECORD_NOT_FOUND if the info is not present.java.lang.ArrayIndexOutOfBoundsException - if storing the Application Information bytes would cause
access outside array bounds or the offset is
negative.
java.lang.NullPointerException - if buffer is null
short setInfo(byte[] buffer,
short offset,
short length,
short info)
GPCLRegistryEntry.
Received data is expected to be formatted as specified for the INSTALL system parameter relating to the specified INFO_XX constant.
buffer - contains the updated information. For the coding of the data
see the documentation of the constants INFO_XX.offset - within buffer, where updated information can be foundlength - of the updated informationinfo - is any constant with name INFO_XX which is defined in this interface.
offset + length)
javacard.framework.ISOException - with reason code
ISO7816.SW_CONDITIONS_NOT_SATISFIED if the caller
ISO7816.SW_WRONG_DATA if the value is not correctly formatted.ISO7816.SW_WRONG_DATA if the value of info is unknown.ISO7816.SW_FUNC_NOT_SUPPORTED if the info is not supported by the platform (e.g. unsupported RF protocol data).ISO7816.SW_CONDITIONS_NOT_SATISFIED if the info indicates a READ ONLY information.java.lang.ArrayIndexOutOfBoundsException - if storing the Application Information bytes would cause
access outside array bounds or the offset is
negative.
java.lang.NullPointerException - if buffer is nullGPCLRegistryEntry getNextConflictingApplication(GPCLRegistryEntry oEntry)
this entry was activated.NOTE: For Applications belonging to an Application Group, Contactless Protocol Parameters (used to perform conflict detection) are provided by the Head Application of that group, even if the Member Application was personalized with its own parameter values.
oEntry - GPCLRegistryEntry
oEntry is null, this method returns the first entry of the list.oEntry is not null and belongs to the list, oEntry.
oEntry is not null and points to the last entry of the list, this method returns null.oEntry is not null but does not belong to the list, this method returns null.javacard.framework.ISOException - with reason code
ISO7816.SW_CONDITIONS_NOT_SATISFIED if
caller does not have the PRIVILEGE_CONTACTLESS_ACTIVATION privilege.
java.lang.SecurityException - if oEntry is not a JCRE-owned instance of GPCLRegistryEntry.void joinGroup(javacard.framework.AID oHead)
this entry as a member of the Application
Group with specified Head Application.
oHead - Head Application's AID. The null value shall be
used to leave any Application Group to which this entry may
belong.
javacard.framework.ISOException - with reason code
ISO7816.SW_CONDITIONS_NOT_SATISFIED if the caller this entry, oroHead parameter is not null, or oHead parameter does not correspond to a Head Application.GPCLRegistryEntry getNextGroupMember(GPCLRegistryEntry oEntry)
this entry (Head Application).
oEntry - GPCLRegistryEntry
this entry does not represent a Head Application, this method returns null.oEntry is null, this method returns the first entry of the list.oEntry is not null and belongs to the list, oEntry.
oEntry is not null and points to the last entry of the list, this method returns null.oEntry is not null but does not belong to the list, this method returns null.javacard.framework.ISOException - with reason code
ISO7816.SW_CONDITIONS_NOT_SATISFIED PRIVILEGE_CONTACTLESS_ACTIVATION and java.lang.SecurityException - if oEntry is not a JCRE-owned instance of GPCLRegistryEntry.
void addToGroupAuthorizationList(byte[] baAID,
short offsetAID,
short lengthAID)
this entry shall be either a Head Application or a Standalone
Application.
baAID - byte array containing the AID valueoffsetAID - start offset of the AID valuelengthAID - length of the AID value
javacard.framework.ISOException - with reason code
ISO7816.SW_CONDITIONS_NOT_SATISFIED this entry is already a Group Member (i.e. associated with a Head Application), orthis entry or its associated Security Domain.
void removeFromGroupAuthorizationList(byte[] baAID,
short offsetAID,
short lengthAID)
this entry is not a Head Application, or the
specified AID does not belong to the Group Authorization List, then the
method simply returns with no error.
baAID - byte array containing the AID valueoffsetAID - start offset of the AID valuelengthAID - length of the AID value
javacard.framework.ISOException - with reason code ISO7816.SW_CONDITIONS_NOT_SATISFIEDthis entry or its associated Security Domain.
void setPartialSelectionOrder(boolean TopBottom)
If this entry is a Head Application, all Group Members are moved together with the Head Application in the same order.
TopBottom - this entry (and associated Group Members, possibly) acquires highest priority for partial selection (i.e. first selected).this entry (and associated Group Members, possibly) acquires lowest priority for partial selection (i.e. last selected).javacard.framework.ISOException - with reason codeISO7816.SW_CONDITIONS_NOT_SATISFIED if the caller has not PRIVILEGE_CONTACTLESS_ACTIVATIONGPCLRegistryEntry getNextCRELApplication(GPCLRegistryEntry oEntry)
this entry.
oEntry - GPCLRegistryEntry
oEntry is null, this method returns the first entry of the list.oEntry is not null and belongs to the list, oEntry.
oEntry is not null and points to the last entry of the list, this method returns null.oEntry is not null but does not belong to the list, this method returns null.javacard.framework.ISOException - with reason codeISO7816.SW_CONDITIONS_NOT_SATISFIED if the caller has not PRIVILEGE_CONTACTLESS_ACTIVATIONjava.lang.SecurityException - if oEntry is not a JCRE-owned instance of GPCLRegistryEntry.
void addToCRELApplicationList(byte[] baAID,
short offsetAID,
short lengthAID)
this entry.
baAID - byte array containing the AID valueoffsetAID - start offset of the AID valuelengthAID - length of the AID value
javacard.framework.ISOException - with reason code
ISO7816.SW_CONDITIONS_NOT_SATISFIED if the caller of this method this entry, andthis entry.
void removeFromCRELApplicationList(byte[] baAID,
short offsetAID,
short lengthAID)
this entry.
baAID - byte array containing the AID valueoffsetAID - start offset of the AID valuelengthAID - length of the AID value
javacard.framework.ISOException - with reason code
ISO7816.SW_CONDITIONS_NOT_SATISFIED if the caller of this method
this entry, and
this entry.
GPCLRegistryEntry getNextReferencingApplication(GPCLRegistryEntry oEntry)
this entry as one of their CREL Applications.
oEntry - GPCLRegistryEntry
oEntry is null, this method returns the first entry of the list.
oEntry is not null and belongs to the list,
this method returns the next entry of the list following oEntry.
oEntry is not null and points to the last entry of the list, this method returns null.
oEntry is not null but does not belong to the list, this method returns null.
javacard.framework.ISOException - with reason code
ISO7816.SW_CONDITIONS_NOT_STATISFIED
if the caller is not the Application represented by this entry.
java.lang.SecurityException - if oEntry is not a JCRE-owned instance of GPCLRegistryEntry.boolean isGroupHead()
this entry represents a Group Head.
true true if this Application is a Group Head,
false otherwise (either a Group Member or a standalone Application).
javacard.framework.ISOException - with reason code ISO7816.SW_CONDITIONS_NOT_SATISFIED if
the caller has not GPRegistryEntry.PRIVILEGE_GLOBAL_REGISTRY
boolean isGroupMember()
this entry represents a Group Member.
true if this Application is a Group Member,
false if this Application is a Group Head or is a standalone Application.
javacard.framework.ISOException - with reason code
ISO7816.SW_CONDITIONS_NOT_SATISFIED if
the caller has not GPRegistryEntry.PRIVILEGE_GLOBAL_REGISTRY
|
||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||